Historian interface system

ABSTRACT

A historian interface system provides a graphical representation of tags that represent attributes of a continuous process. A historian system stores the tags and metadata values describing the tags. A display device coupled to the historian system via a communication network displays graphical representations of the tags via display panels and receives selections of the tags. The historian system contextualizes selected tags based on the metadata values describing the selected tag and determines an optimal visualization scheme for the selected tags. The display device displays graphical representations of values of the tags and dynamically determines optimal grouping of the tags based on properties of the display device.

BACKGROUND

Aspects of the present invention generally relate to the fields ofnetworked computerized industrial control, automation systems, andnetworked computerized systems utilized to monitor, log, and displayrelevant manufacturing/production events and associated data, andsupervisory level control and manufacturing information systems. Suchsystems generally execute above a regulatory control layer in a processcontrol system to provide guidance to lower level control elements suchas, by way of example, programmable logic controllers or distributedcontrol systems. Such systems are also employed to acquire, manage,store, and preserve historical information relating to processes andtheir associated outputs.

Typical industrial processes are extremely complex and receivesubstantially greater volumes of data and information than any humancould possibly digest in raw form. By way of example, it is not unheardof to have thousands of sensors and control elements (e.g., valveactuators) monitoring/controlling aspects of a multi-stage processwithin an industrial plant. These sensors are of varied type and reporton varied characteristics of the process. Their outputs are similarlyvaried in the meaning of their measurements, in the amount of data sentfor each measurement, and in the frequency of their measurements. Asregards the latter, for accuracy and to enable quick response, some ofthese sensors/control elements take one or more measurements everysecond. Multiplying a single sensor/control element by thousands ofsensors/control elements (a typical industrial control environment)results in an overwhelming volume of data flowing into the manufacturinginformation and process control system. Sophisticated data managementtechniques have been developed to store and maintain the large volumesof data generated by such system. Interfacing with systems that storesuch data typically includes using special-purpose programming languageswith strict syntax regulations regarding queries for data stored on suchsystems. By way of example, a query based on the Structured QueryLanguage (SQL) is required to adhere to a strict four-part namingconvention. Moreover, retrieved data is displayed in a tabular formatthat does not efficiently convey potential problems associated with theprocess.

SUMMARY

Aspects of the present invention relate to systems and methods forinterfacing with systems storing historical information and presentingthe historical information via display devices. Aspects of the presentinvention provide an interface system configured to displaycontext-based, data-driven display panels for identification, analysis,and processing of time-series data. Moreover, aspects of the inventionprovide dynamic determination of an optimal visualization scheme fortime-series data.

Briefly, a system embodying aspects of the invention comprises a localhistorian system coupled to a remote display device over a communicationnetwork. The local historian system is configured to receive a selectionof at least one tag of a plurality of tags from the remote displaydevice over the communication network. The local historian system alsoincludes a computer-readable storage medium and a processor. Thecomputer-readable storage medium stores the plurality of tags and eachtag represents an attribute of a continuous process. Thecomputer-readable storage medium also stores one or more metadata valuesthat describe each tag. The processor is configured to executeprocessor-executable instructions stored on the computer-readablestorage medium. The processor-executable instructions includeinstructions to contextualize the selected tag based on the metadatavalues describing the selected tag. The local historian system is alsoconfigured to transmit the contextualized tag to the remote displaydevice over the communication network.

In another aspect, a method of providing a historian interface systemincludes displaying, via a graphical user interface (GUI) of a remotedisplay device, a graphical representation of a plurality of tags. Eachof the tags represents an attribute of a continuous process and isstored in a memory of a local historian system. The local historiansystem is coupled to the remote display device via a communicationnetwork. The memory of the local historian system also stores one ormore metadata values that describe each tag. The method further includesreceiving, via the GUI of the remote display device, a selection of thedisplayed graphical representation of at least one tag of the pluralityof tags. A processor of the local historian system contextualizes theselected tag based on the metadata values describing the selected tag.Moreover, the method includes displaying, via the GUI of the remotedisplay device, a graphical representation of a value of the attributeof the selected tag based on said contextualizing.

In yet another aspect, a method of providing metadata values of a tagstored in a historian system includes receiving a search query via agraphical user interface (GUI) on a display device. The method furtherincludes searching a historian system for one or more tags storedthereon. Each tag is defined by a plurality of metadata attributes. Thehistorian system and the display device are connected by a communicationnetwork. The method also includes receiving a plurality of the tagsstored on the historian system via the communication network. Eachreceived tag has a value for at least one of the plurality of metadataattributes that at least in part matches the search query. A first paneldisplays via the GUI that includes a graphical representation of each ofa plurality of groups. Each group corresponds to one of the plurality ofmetadata attributes and includes a plurality of subgroups. Each subgroupincludes a plurality of received tags that each have a value for acommon metadata attribute that at least in part matches the searchquery. Moreover, the method includes displaying via the GUI a graphicalrepresentation of each subgroup on the first panel and receiving via theGUI a selection of the graphical representation of one of the subgroupsdisplayed on the first panel. A second panel displays via the GUI thatincludes a graphical representation of each of the plurality of receivedtags comprising the selected subgroup. A selection of the graphicalrepresentation of one of the plurality of tags displayed on the secondpanel is received via the GUI. A third panel displays via the GUI thatincludes a graphical representation of the value of each of theplurality of metadata attributes of the selected tag.

Other objects and features will be in part apparent and in part pointedout hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an architecture of a historian systemaccording an embodiment of the invention.

FIG. 2 is an exemplary diagram of the structure of FIG. 1.

FIG. 3 is a diagram illustrating an exemplary graphical user interfaceof a historian system according to an embodiment of the invention.

FIG. 4 is a diagram illustrating an exemplary tag search area of FIG. 3.

FIG. 5 is a diagram illustrating an exemplary tag summary area of FIG.3.

FIGS. 6A-6E are diagrams illustrating exemplary tag detail areas of FIG.3.

FIG. 7 is a diagram illustrating an exemplary method of providing ahistorian interface system according to an embodiment of the invention.

FIG. 8 is a diagram illustrating an exemplary method of providingmetadata values of a tag according to an embodiment of the invention.

Corresponding reference characters indicate corresponding partsthroughout the drawings.

DETAILED DESCRIPTION

Referring to FIG. 1, a distributed historian system, generally indicatedat 100, enables users to log into the system to easily viewrelationships between various data, even if the data is stored indifferent data sources. In an embodiment, the historian system 100stores and uses data from various locations and facilities and usescloud storage technology to ensure that all the facilities are connectedto all the necessary data. The distributed historian system 100 includesconfigurators 102, data collectors 104, user devices 106, storageaccounts 108, client access point web role instances 118, online webrole instances 120, data retrieval web role instances 122, configuratorweb role instances 124, storage worker role instances 126, metadataserver worker role instances 128, and retrieval worker role instances130. The storage accounts 108 each further include configuration data110, raw time-series binary data 112, tag metadata 114, and diagnosticlog data 116. Aspects of historian system 100 are described furtherherein and in U.S. patent application Ser. No. 14/833,906, filed Aug.24, 2015, which is hereby incorporated by reference in its entirety.

The historian system 100 forms connections with configurators 102, datacollectors 104, and user devices 106 on which the historian data can beaccessed. The configurators 102 are modules that may be used by systemadministrators to configure the functionality of the historian system100. The data collectors 104 are modules that connect to and monitorhardware in the process control system to which the historian system 100is connected, as further described herein. In an embodiment, datacollectors 104 access client access point web role instances 118. Theuser devices 106 comprise computing devices that are geographicallydistributed, enabling historian data from the historian system 100 to beaccessed from various locations across a country or throughout theworld. In an embodiment, user devices 106 access online web roleinstances 120. Additional aspects of user devices 106 are furtherdescribed herein.

In an embodiment, historian system 100 stores a variety of types ofinformation as data in storage accounts 108. This information includesraw time-series binary data 112 and tag metadata 114. The datacollectors 104 of FIG. 1 share tag metadata and raw time-series datawith the client access point web role instances 118. The raw time-seriesdata is shared with storage worker role instances 126 and then stored asraw time-series binary data 112 in the storage accounts 108. The tagmetadata is shared with metadata server worker role instances 128 andstored as tag metadata 114 in the storage accounts 108. The storageworker role instances 126 and metadata server worker role instances 128send raw time-series data and tag metadata to retrieval worker roleinstances 130. The raw time-series data and tag metadata is convertedinto time-series data and sent to the online web role instances 120 viadata retrieval web role instances 122. Users using the user devices 106receive the time-series data from the online web role instances 120.

In an embodiment, historian system 100 stores metadata in the form oftag objects. Every historian tag object is a metadata instance, whichcontains tag properties such as tag name, source, data type, unit ofmeasure, value range, interpolation, and description. Moreover, the tagobject is uniquely defined by a tag ID, which is, for example, a 16-byteglobally unique identifier (GUID). The stored metadata includes valuesthat determine how the associated data values are stored. This includesmetadata that indicates whether the associated data value is a floatingpoint value, an integer value, or the like. The metadata includes, forexample, an engineering unit range that indicates a range in which theassociated data value must reside for the particular engineering unitsbeing used. In an embodiment, historian system 100 makes use of theengineering unit range to scale the raw data value when storing it onthe data server. For instance, data values may be scaled to valuesbetween 0.0 and 1.0 based on the engineering unit range included in themetadata. Because the metadata contains the engineering unit range, thescaled value stored by the historian can be converted back to the rawdata value with the added engineering units for presentation to user.For example, if the data value is of a data type known to only returnvalues between −10 and 30, a data value of 30 is scaled to 1.0 and adata value of −10 is scaled to 0.0. A data value of 10 is scaled to 0.5.As a result, the scaled data values as stored on the data server cannotbe interpreted correctly without knowing the related metadata in orderto convert from scaled value to true value with the appropriate units.

The concept of tags is different from the concept of tag metadatainstances. A tag is identified by a tag name, while a metadata instanceis identified by tag ID. So for the same tag historian system 100 canhave several metadata instances sharing the same name, but havingdifferent tag IDs. For example, the same tag could be reconfiguredseveral times along the way. It could be created first as 16-bitunsigned integer, collect some 16-bit data, then reconfigured to be32-bit unsigned integer, collect some 32-bit data, then reconfigured to32-bit float. In this example, it comprises a single tag but has threedifferent tag metadata instances identified by tag ID. A tag metadatainstance can also be called a tag version. Tracking tag metadata isessential for data processing and, advantageously, the historian trackswhat is stored in the raw binary data chunks. The historian stores tagversions in two places: A tag table (and its dependent tables) of aruntime database stores the most recent tag metadata called the currentversion, and the history blocks, where, for instance, tag metadata forclassic tags is stored in files tags.dat, and for the other tags infiles taginfo.dat.

FIG. 2 illustrates aspects of historian system 100 including a serverdevice 202, a communication network 204, a continuous processing system208, and at least one of the user devices 106. The server device 202,user device 106, and aspects of the continuous processing system 208(e.g., sensor, actuators, etc.) are communicatively coupled via thecommunication network 204, as further described herein.

The server device 202 is a computing device and includes at least aprocessor and a storage medium. In an embodiment, the storage mediumcomprises a database that provides a historian that includes aspects ofclient access point web role instances 118, online web role instances120, data retrieval web role instances 122, configurator web roleinstances 124, storage worker role instances 126, metadata server workerrole instances 128, and retrieval worker role instances 130. The storageaccess accounts 108 may be included in the database of server device 202according to one embodiment of the invention or stored on remote serverdevices according to another embodiment of the invention. In anotherembodiment, server device 202 provides a website-based interface tohistorian system 100.

The communication network 204 of FIG. 2 is capable of facilitating theexchange of data among aspects of historian system 100, including serverdevice 202, aspects of continuous processing system 208, user devices106, and/or remote storage accounts. The communication network 204 inthe embodiment of FIG. 1 includes local area networks (LANs) and widearea networks (WANs) that are connectable to other telecommunicationsnetworks, including other LANs or WANs or portions of the Internet or anintranet. The communication network 204 may be any telecommunicationsnetwork that facilitates the exchange of data, such as those thatoperate according to the IEEE 802.3 (e.g., Ethernet) and/or the IEEE802.11 (e.g., Wi-Fi) protocols, for example. In another embodiment,communication network 204 is any medium that allows data to bephysically transferred through serial or parallel communication channels(e.g., copper, wire, optical fiber, computer bus, wireless communicationchannel, etc.). In an embodiment, communication network 204 comprises atleast in part a process control network. In yet another embodiment,communication network 204 comprises a cloud environment.

Referring further to FIG. 2, the continuous processing system 208 in theillustrated embodiment is adapted for changing or refining raw materialsto create end products. Aspects of the present invention are capable ofoptimizing processes and processing systems that include, but are notlimited to, those in the chemical, oil and gas, food and beverage,pharmaceutical, water treatment, and power industries. In an embodiment,continuous processing system 208 includes a process controller thatprovides an interface or gateway between components (e.g., pumps,valves, sensors) of continuous processing system 208 and othercomponents of historian system 100 (e.g., server device 202, userdevices 106). In another embodiment, components of continuous processingsystem 208 communicate directly with server device 102 and/or userdevices 106 via communication network 204. In yet another embodiment,aspects of continuous processing system 208 (e.g., controller) transmitsdata to and receives data from communication network 204 for controllingand/or monitoring various aspects of continuous processing system 208(e.g., pumps, valves, sensors).

The user device 106 includes an associated display 206 capable ofdisplaying graphical representations of data (e.g., metadata,time-series data), via a graphical user interface (GUI), regardingaspects of continuous processing system 208. For example, display device206 may be a touchscreen of a mobile computing device (e.g. smartphone,tablet computing device, laptop) or a monitor of a desktop computingdevice. In an embodiment, user device 106 also includes a storage medium(e.g., memory) for storing processor-executable instructions of aspectsof the invention and a processor for executing processor-executableinstructions of aspects of the invention. In another embodiment, userdevice 106 also includes an interface (e.g., modem, network interfacecard, wireless communication antenna, etc.) capable of interfacing withcommunication network 204.

FIG. 3 illustrates an exemplary GUI 302 displayed by display device 206of a user device 106. The GUI 302 includes a header 304, a tag searcharea 306, a tag summary area 308, a tag detail area 310, a chartsettings area 312, a time control area 314, a data series area 316, anda chart gallery area 318. In an embodiment, GUI 302 comprises a clientapplication of historian system 100. The GUI 302 is referred to as anInformation (“Info”) Client dashboard in accordance with an embodimentof the invention. In another embodiment, GUI 302 is not shown when auser of user device 106 is not signed in to historian system 100 and isshown when the user is signed in to historian system 100. In yet anotherembodiment, GUI 302 is shown when a user refreshes a home page of awebsite interface of historian system 100 provided by server device 202.It is to be understood by one having ordinary skill in the art that awebpage-based embodiment of GUI 302 may include a page lifetime thatdepends on an application session timeout (e.g., 20 minutes ofinactivity).

The header 304 is configured to provide GUI navigation capability foraspects of historian system 100. For example, header 304 may includehyperlinks to a home page, a support page, and the like. The header 304may also provide a menu of available activities of historian system 100.In an embodiment, header 304 is located substantially near a top portionof GUI 302. In another embodiment, header 304 includes tag search area306. The tag search area 306 is configured to facilitate a search andselection of tags stored in historian system 100. In an embodiment, tagsearch area 306 is the only visible (i.e., not hidden) section during adefault state of GUI 302. In yet another embodiment, tag search area 306provides a guided search experience, as further described herein. Thetag summary area 308 is configured to display graphical representationsof tags selected in tag search area 306, as further described herein.The tag detail area 310 is configured to display graphicalrepresentations of values associated with tags selected in tag summaryarea 308, as further described herein.

The chart settings area 312 of FIG. 3 is configured to display settingsapplicable for a chart displayed in tag detail area 310 that includesvalue aggregations. Exemplary value aggregations include, but are notlimited to, minimum, average, maximum, sum, last value, and the like. Inan embodiment, a user of GUI 302 can apply value aggregation to a tagsdisplayed by tag detail area 310 through a value aggregation combo box(e.g., drop-down menu) that includes various value aggregation types. Inanother embodiment, an average value aggregation is applied to tagdetail area 310 during a default state of GUI 302. In a furtherembodiment, value aggregations are supported by summary, column, summarygrid, and XY plot chart types for analog data types. In yet anotherembodiment, value aggregations are supported by time-in-state andsummary grid chart types for Boolean and string data types. The chartsettings area 312 also includes a floating action bar (FAB) that allowsa user of GUI 302 to perform various actions on an active chart in tagdetail area 310, according to aspects of the invention. Actionssupported on an active chart using the FAB include, but are not limitedto, save for later, download, share to mobile device, embed content, andshare exploration.

The time control area 314 is configured to display time periodselections for a current chart displayed in tag detail area 310. In anembodiment, a user of GUI 302 uses the time period selections of timecontrol area 314 to select a time period for the tag values displayed intag detail area 310. And the time control area 314 of FIG. 3 isconfigurable to present predefined time periods such as last month, lastweek, last three days, yesterday, today, and last hour. Time controlarea 314 may also allow a user of GUI 302 to specify a custom timeperiod. In another embodiment, time control area 314 allows a user ofGUI 302 to group tag data displayed in a current chart in tag detailarea 310 based on time aggregations. Exemplary time aggregationsinclude, but are not limited to, today-hourly, yesterday-hourly, lastthree days-hourly, last week-daily, last month-daily, and the like. Inyet another embodiment, time aggregation is supported by column, summarygrid, detail grid, cumulative sum, and cumulative line chart types foranalog data and for a summary grid chart type for Boolean and stringdata.

The data series area 316 is configured to display tags comprising agroup of one or more tags selected in tag summary area 308. The dataseries area 316 is also configured to allow a user of GUI 302 to selectand deselect displayed tags to plot a selected chart in tag detail area310. In an embodiment, a tag name of each tag is displayed in ashortened form with ellipses and the full tag name is displayed in atool tip area upon hovering over the tag name with a pointing cursor(e.g., mouse). In an embodiment, each selected tag of data series area316 is assigned a color that is used to plot values of the selected tagin chart detail area 310. In another embodiment, GUI 302 permitsselection of a maximum of twenty tags displayed in data series area 316.In yet another embodiment, a selected tag count out of the totalavailable tags is displayed substantially near a bottom portion of dataseries area 316. In a further embodiment, a user of GUI 302 can clearthe tags selection by clicking on a “clear selection” option displayedsubstantially near a bottom portion of data series area 316. A user ofGUI 302 can view details of each tag in data series area 316 byexpanding a tag details drop down option that is displayed near a rightportion of each tag. Expanding a tag displays the source, data type,unit of measure, range, interpolation, and description of the expandedtag. The tag details can be collapsed by clicking on a collapse optiondisplayed near a right portion of each expanded tag name.

The chart gallery area 318 of FIG. 3 is configured to display differentcharts applicable for a selected tag group in tag summary area 308.Applicable charts for the selected tag group are displayed in scrollabletiles in chart gallery area 318. Selection of a chart via GUI 302 willdisplay the respective chart type in tag detail area 310. In anembodiment, a user of GUI 302 can switch between different chart typesfor the same set of selected tags. In an embodiment in which theselected tags comprise numeric data, the applicable charts include asummary chart, a line chart, a column chart, a summary grid, an XY plot,a trend in state chart, a cumulative sum, a cumulative line, a detailgrid, and a diagnostic grid, with the summary chart being displayed in adefault state of chart gallery area 318. In an embodiment in which theselected tags comprise discrete data or string data, the applicablecharts include a summary chart, a time in state chart, a summary grid,and a diagnostic grid, with the summary chart being displayed in adefault state of chart gallery area 318.

In an embodiment, data series area 316 and chart gallery area 318 aremutually exclusive, such that only one is displayed at a given time onGUI 302. In another embodiment, data series area 316 is displayed duringa default state of GUI 302. In yet another embodiment, data series area316 and chart gallery area 318 are of fixed width in all resolutions andcan be shown or hidden by clicking on an associated icon on GUI 302.

FIG. 4 illustrates an exemplary embodiment of tag search area 306 thatis configured to provide a three-panel guided tag search experience. Theillustrated embodiment includes a query area 402, a time periodselection area 404, a first panel 406, a second panel 408, and a thirdpanel 410. In an embodiment, the query area 402 and the time periodselection area 404 comprise a search section that captures user inputand searches server 202 based on contents in this section. In anotherembodiment, the first panel 406, the second panel 408, and the thirdpanel 410 comprise a results section that displays all results fromserver 202 as the user enters a search query (e.g., types) in the queryarea 402. The tag search area 306 is also configurable to provide asearch-based system used to find tags stored on server 202 that are ofinterest for data analysis. Once a set of tags that belong to multipledifferent groups (e.g., units of measure) are selected by a user of GUI302 for further analysis, a collection of display panels is dynamicallycreated based on the context of selected tags. The context includesmetadata attributes such as a tag type, a tag unit of measure, a tag onand off message, and the like. In an embodiment, this logical groupingallows for easy and efficient visualization and problem solving. Inanother embodiment, tag search area 306 employs an auto-complete featureto display search results contemporaneously with the entry of a searchquery.

In the embodiment illustrated by FIG. 4, query area 402 is a text inputbox with a search icon. From query area 402, a user of GUI 302 cansearch for a tag by entering the starting letters of the tag name oranother tag detail (e.g., source, data type, unit of measure, range,interpolation, and description). Upon entering a query in query area402, user device 106 queries server 202 for the top one hundred matchedtags, according to an embodiment of the invention.

The time period selection area 404 is configured to enable a user of GUI302 to select a time period such that tag data is limited to theselected time period. In an embodiment, a user of GUI 302 can select atime period in time period selection area 404 to view summary data(e.g., summary bars and summary grid) and detail data (e.g., trend andstate) within the selected time period range for selected tags. Inanother embodiment, a user of GUI 302 can also change the time period toview summary data in various time range periods for the same set ofselected tags. In yet another embodiment, a change of the time period bya user of GUI 302 will refresh tag summary area 308 and tag detail area310 to reflect tags in the selected time period range. Predeterminedtime ranges include today, last four hours, last twenty-four hours,yesterday, last seven days, last week, and this week, with today beingthe selected time period range during a default state of GUI 302, inaccordance with an embodiment of the invention.

Referring further to FIG. 4, in another embodiment, time periodselection area 404 also displays the corresponding browser date timeagainst each time period option. In a further embodiment, a user of GUI302 can select a custom time period. For example, time period selectionarea 404 may include a “Custom” option button displayed in a drop-downmenu. When a user of GUI 302 selects the “Custom” option button, GUI 302then displays a dialog box in which the user can select the start timeand end time for the custom time period. In an embodiment, the end timeis greater than the start time and the time period is prior to a currenttime period. When an invalid date range is selected, an error message isdisplayed in the dialog box on GUI 302. Once a valid date is selected,time period selection area 404 updates tag summary area 308, tag detailarea 310, and time control area 314 with the selected time range. In anembodiment in which a user of GUI 302 refreshes the page or selectsanother time period and the custom time range is not persisted, thecustom time selection will be lost. In another embodiment in which auser of GUI 302 saves an analysis (e.g., tag detail area 310) with acustom time range, the analysis will be displayed with the same customtime range when the analysis is reloaded.

The first panel 406 is configured to display tags that match the queryin query area 402. In an embodiment, the tags are displayed in groups,including All, Tag Names, Sources, Description, Unit of Measure, Type,and Multiple Fields. The groups are comprised of subgroups, which arecollections of tags whose values for a certain tag detail match thesearch query in query area 402. The All group is displayed at asubstantially top portion of first panel 406 with an asterisk (e.g., *)mark and includes a unique match for the query in query area 402. TheTag Names group includes tags whose tag name detail match the query inquery area 402. The Sources group includes tags whose source detailmatches the query in query area 402. The Description group includes tagswhose description detail matches the query in query area 402. The Unitof Measure group includes tags whose unit of measure detail matches thequery in query area 402. The Type group includes tags whose data typedetail matches the query in query area 402. The Multiple Fields groupincludes tags that match the query in query area 402 for multipledetails. In an embodiment, the group name is displayed and the number oftags available in each group is displayed next to the group name. Inanother embodiment, the first four tags in each group are shown in adefault state and a “show more” button is displayed that enables thedisplay of all of the tags in a given group. In yet another embodiment,an “Add” button is displayed for each group to add tags from the groupdirectly and a selection (e.g., clicking, tapping) of the “Add” buttonby a user of GUI 302 adds the first one hundred tags in that group. Inan embodiment, first panel 406 is displayed at a substantially leftmostportion of tag search area 306 and to the left of second panel 408.

The second panel 408 of FIG. 4 is configured to display the tags in aselected subgroup displayed in first panel 406. In an embodiment, secondpanel 408 displays a maximum of one thousand tags. In anotherembodiment, second panel 408 includes a heading “Tags ([number of tags]Tags).” When a user of GUI 302 selects (e.g., clicks or taps) a tagname, the tag is added to tag summary area 308 if it is not alreadypresent and the tag is removed from tag summary area 308 if it isalready present. In an embodiment, each tag in second panel 408 has anassociated arrow icon, and selecting the arrow icon causes the detailsof the selected tag to be displayed in the third panel 410. In anembodiment, second panel 408 is displayed at a substantially center areaof tag search area 306 between first panel 406 and third panel 410.

The third panel 410 is configured to display tag metadata details of aselected tag in second panel 408. In an exemplary embodiment, themetadata details include the tag name, source, data type, unit ofmeasure, range, interpolation, and description. In an embodiment, thirdpanel 410 displays an “Add tag” button and selection of the button addsthe tag in tag detail area 310 unless that tag is already present in tagdetail area 310. In another embodiment, third panel 410 is displayed ata substantially rightmost portion of tag search area 306 and to theright of second panel 408.

In an embodiment, first panel 406, second panel 408, and third panel 410each include display elements, such as a vertical scroll bar and/or anellipsis, to indicate there is additional text that does not fit in thehorizontal dimensions of the panel. In another embodiment, first panel406, second panel 408, and third panel 410 are keyboard navigable. Forexample, a “down arrow” input moves the focus to a next item, an “uparrow” input moves the focus to a previous item, a “right arrow” inputdisplays a panel to the right of the current panel (e.g., second panel408 when first panel 406 is the current panel; third panel 410 whensecond panel 408 is the current panel) and selects the first item in thenewly displayed panel, and a “left arrow” input moves the focus back tothe previous panel from where the current panel originated. An “Esc”(e.g., escape) input closes the search panel by no longer displaying tagsearch area 306. An “Enter” input adds a selected tag to tag summaryarea 308 and adds all items from the first All group when no item isselected and then closes the search panel by no longer displaying tagsearch area 306. It will be understood by having skill in the art thatinput devices may include a physical keyboard connected to user device106 and a touchscreen keyboard displayed via GUI 302 on display device206. In an embodiment in which an item in any of first panel 406, secondpanel 408, and third panel 410 is focused by a mouse pointing device, auser may navigate using a keyboard from the item on which the focus isdirected. In another embodiment, the results section comprised of thepanels is resizable and enlarging the results section with a resizehandle increases the width of the rightmost displayed panel and/orincreases the height of all displayed panels. In yet another embodiment,each of first panel 406, second panel 408, and third panel 410 isprovided with a splitter that enables increasing or decreasing the widthof the panel.

FIG. 5 illustrates an exemplary embodiment of tag summary area 308 thatis configured to display tags summary data of tags selected in tagsearch area 306. In an embodiment, a maximum of one hundred tags aredisplayed in tag summary area 308. Tags summary data in tag summary area308 are displayed in either a grid format or a chart format. The chartformat is, for example, the default view and is represented by a barchart. The bar chart represents tag data in the form of aggregates suchas tag maximum value, tag minimum value, tag average value, last tagvalue, and total tag values for a selected time period range. In anembodiment, an aggregate type combo box 502 displays the aggregate typesfor selection by a user of GUI 302. For example, tag average value isthe default aggregate type. Selection of an aggregate type will redrawthe bar chart in tag summary area 308 to the selected aggregate type. Inan embodiment, tag names 504 are displayed at a substantially leftportion of tag summary area 308 and tag values 506 are displayed at asubstantially right portion of tag summary area 308. In anotherembodiment, the bar charts are grouped against an engineering unit, witheach bar chart representing one engineering unit. In this embodiment,the x-axis of each bar chart represents an engineering minimum and anengineering maximum. In yet another embodiment, a user of GUI 302selects tags displayed in tag summary area 308 for detail view in tagdetail area 310, selected tags are highlighted by a color indicatorshown against the tag name, and selected tags are highlighted in thegrid format to keep the bar chart format and grid format in sync. Amaximum of number of tags (e.g., 20) may be selected from tag summaryarea 308 for detail view in tag detail area 310 and a maximum tag countreached message is displayed after the addition of twenty tags. In yet afurther embodiment, a user of GUI 302 can deselect tags in tag summaryarea 308 that removes those tags from tag detail area 310.

An exemplary bar chart format of tag summary area 308 as shown in FIG. 5includes a hover effect when a user of GUI 302 utilizes a pointingdevice (e.g., mouse). Upon moving the pointing device over a tag value506, the tag value 506 will change (e.g., decrease) in opacity toindicate that the bar may be selected for detail analysis. An embodimentthat includes negative values for certain bar charts of tag summary area308 will adjust the display of all bar charts and negative values willbe displayed on a left hand side of a value bar that indicates a zerovalue. In an embodiment, tag summary area 308 displays an optimizedvalue such that if the length of the tag value is greater than thelength of the value bar, then the tag value is displayed from thebeginning of the tag and if the value bar length is greater than thelength of the tag value then the tag value is displayed in the middle ofthe value bar. In yet another embodiment, tag summary area 308 canresize bar charts such that on the resize of a browser window, the barcharts self-adjust such that there is no overlap of tag value bars 506and tag names 504. In an embodiment, the total value of a tag is thearea under the value curve of a retrieval cycle provided by the formula:Sum(value*delta t)/Total time of integral in all cycles, where delta tis prorated for any partially contained storage cycles. For tags withanalog data types, the calculation is: Sum(value*delta t)/Total time,which is similar to the values returned by an integral query against ahistory table for a cycle of the same length where the history rowDateTime is the same as the EndDateTime. In another embodiment, adownload button option is displayed in tag summary area 308 that enablesa download of the newly added metrics to a .CSV file.

Referring further to FIG. 5, an exemplary grid format of tag summaryarea 308 includes the tag data in tabular format with columns forsource, tag, type, units of measure, minimum, maximum, average, qualityID, quality status, and description. In a grid format, a user of GUI 302cannot select the tags, but the tags selected from the grid arehighlighted by displaying a color indicator against the tag name row. Inthe grid format, a user of GUI 302 can delete tags that will be removedfrom the bar chart as well. In an embodiment, the grid format shows anellipsis (e.g., “ . . . ”) in columns to indicate a fetch of data (e.g.,from server 202) is in progress. In an embodiment, a grid format is notgrouped as engineering units and the tags are displayed as one group. Inanother embodiment, tag summary area 308 includes an information buttonthat enables the display of details about a particular tag in a pop-upwindow. In yet further exemplary embodiments, tag summary area includesa refresh data button that enables updating tag summary area for aselected time range and a reload button that clears all tags in tagsummary area 308 and also cancels all pending requests for addition andupdates.

FIGS. 6A-6C illustrate exemplary embodiments of tag detail area 310configured to display values of tags selected in tag summary area 308.In an embodiment, tag detail area 310 enables a user of GUI 302 toanalyze a maximum of fifteen tags selected in tag summary area 308. Inaccordance with aspects of the invention, once a user of GUI 302 selectstags from tag summary area 308, user device 106 dynamically determinesan optimal visualization scheme based on the context of the metadata ofthe selected tags. For example, user device 106 may dynamicallydetermine to display analog values of selected tags as a line chart anddiscrete and string values as a time in state chart in tag detail area310. The contextualization and dynamic determination of the optimalvisualization scheme in the illustrated embodiment allow for efficientanalysis of tag data to arrive at process problems. In yet anotherembodiment, when tag data values are displayed via a certainvisualization scheme, user device 106 displays the tag value dataoptimally for the area of GUI 302. For example, when a graphicalrepresentation of the tag data values for each selected tag can bedisplayed in the optimal visualization scheme within the boundaries ofGUI 302 then each selected tag will have its own graphicalrepresentation. When the graphical representation of the tag data valuesfor a selected tag exceeds the boundaries of GUI 302 then user device106 groups certain tag data values together for display as a singlegraphical representation. For example, on a desktop computing device,eight unique groups of tag data values may be displayed with a ninthgroup displayed that comprises a group of tag data values and labeled as“others.” On a tablet computing device, for example, three unique groupsof tag data values may be displayed with a fourth group displayed thatcomprises a group of tag data values and labeled as “others.” In anembodiment, user device 106 dynamically determines an optimal number ofgroups of tags that can be displayed as graphical representations on GUI302 based on a form factor of user device 106.

FIG. 6A illustrates tag detail area 310 with a line chart used to showtrend lines 602 of selected tags for a selected time duration. In anembodiment, the line chart is displayed for analog tags selected in tagsummary area 308. Selecting a tag in tag summary area 308 adds acorresponding line on the line chart of tag detail area 310 anddeselecting a tag in tag summary area 308 removes a corresponding lineon the line chart of tag detail area 310. The trend lines 602 on theline chart are displayed for a selected time duration and when a user ofGUI 302 changes the time duration, as further described herein, trendlines 602 are automatically redrawn in response to the change to matchthe changed time duration. In an embodiment, the y-axis scale startsfrom the lesser of zero and a minimum data value or engineering unit ofall selected tags. In another embodiment, the y-axis scale has a maximumvalue of the greater of zero and a maximum data value or engineeringunit of all selected tags. In yet another embodiment, the x-axisdisplays the selected time duration, the trend lines 602 follow a linearinterpolation, and the trend lines 602 match the color of tags in dataseries area 316.

FIG. 6A also illustrates a limit line 604 to annotate the line chart ataspecified value point in the y-axis. In this embodiment, a settingdialog on the line chart displays configuration options for limit line604. A user of GUI 302 can enable and disable the display of limit line604 by selecting a “draw limit lines on line chart” option in theconfiguration options. In an embodiment in which limit line 604 isenabled, a user of GUI 302 can provide the values indicating where limitline 604 should be displayed on the line chart. In yet anotherembodiment, a user of GUI 302 can provide text that will be displayedabove limit line 604. In an exemplary embodiment, limit line text has atwo hundred character limit. In another exemplary embodiment, a user ofGUI 302 can enter a numeric value in a “limit line value” input box andwhen the y-axis of the line chart is in that range, limit line 604 isdisplayed at that value. When the y-axis of the line chart is not inthat range, limit line 604 will not be displayed.

FIG. 6B illustrates tag detail area 310 with a scatter plot (i.e.,scatterplot, scattergraph) using Cartesian coordinates to display valuesfor two or more variables for a set of data of tags selected in tagsummary area 308. In the illustrated embodiment, the data is displayedas a collection of points each having the value of one variabledetermining the position on the horizontal axis and the value of theother variable determining the position on the vertical axis. In anembodiment, the illustrated scatter plot enables the display of therelationship between the variables to depict any problems or issues withthe data or unique (i.e., interesting) aspects of the data.

When a tag is selected in tag summary area 308, the tag detail area 310displays, for example, a line chart. At this instant, time is thex-axis. A user of GUI 302 can then switch tag detail area 310 to ascatter plot as shown in FIG. 6B by selecting a different tag in thex-axis (e.g., via a drop-down menu displayed in tag detail area 310). Inthe same way, the user of GUI 302 can switch back to the line chart byselecting time in the axis (e.g., via the drop-down menu in tag detailarea 310). In another embodiment, when a user of GUI 302 selects adifferent tag, other than time in the x-axis, aspects of the inventionthat control the line chart receive an event to set the x-axis (e.g.,setXAxisevent). During this event, aspects of the invention that controlthe line chart check whether tag detail area 310 is currently displayinga line chart or a scatter plot. When a line chart is currentlydisplayed, the control aspects clear all data that was captured todisplay the line chart and switches to a scatter plot. Upon receivinginstructions to switch to a scatter plot, the control aspects remove alllines that are currently displayed on the line chart, change the y-axisfrom time scale to linear scale, and append a “loading . . . ” status toitems in a chart legend. The control aspects then fetch process valuesdata for all y-axis and x-axis tags using cyclic retrieval. Afterreceiving the data, the control aspects display the scatter plot in tagdetail area 310. In an embodiment, all the data points in the scatterplot are drawn as a circle with a radius of four, an opacity ofone-half, and with the same color as the tag selected in tag summaryarea 308. After plotting data points as circles, lines are displayedconnecting the data points. In yet another embodiment, three options aredisplayed in a panel header in tag detail area 310. The three optionsinclude whether to display the scatter plot with lines and circles orjust circles alone (e.g., toggle switch), whether to show engineeringunit ranges for the x-axis and y-axis in the scatter plot, and an optionto download the scatter plot data.

FIG. 6C illustrates an exemplary embodiment of tag detail area 310 witha line chart that includes a scooter 608 configured to display values atpositions where the scooter 608 intersects with the line chart. Theillustrated embodiment includes a single scooter, but one havingordinary skill in the art will understand that multiple scooters may beutilized. In an embodiment, a user of GUI 302 can drag scooter 608across the line chart. The tooltip on scooter 608 displays the currentvalue of the line at that position of the scooter. For example, in theembodiment illustrated by FIG. 6C, the scooter is at 2:14 AM and thevalue of the top line is 8.140, the value of the middle line is 2.100,and the value of the bottom line is 2.740 at this position. A user ofGUI 302 can remove scooter 608 by selecting a removal indicia (e.g.,cross mark) at the bottom of the scooter line. In an embodiment, a timedisplay in a rectangle at a bottom portion of scooter 608 uses a d3 nicetime format. When a tag is removed from display in tag detail area 310,the scooter 608 for that tag is removed. In an embodiment, valuesdisplayed a flag of scooter 608 are displayed with three significantdigits. When a flag of scooter 608 is too big to be adjusted at theright side, the display of scooter 608 will compensate at the left side.When scooter 608 is between two ticks along the x-axis and thedifference between the ticks is greater than twenty-four hours thenscooter 608 displays the text in a tooltip with the date and time.

FIG. 6D illustrates an exemplary embodiment of tag detail area 310 witha time in state chart configured to display different states ofnon-analog tags selected in tag summary area 308. In addition, the timein state chart is configured to display information about how long a tagstayed in a particular state. Each bar in the chart represents a statefor a particular tag. In the illustrated time in state chart, the leftbar represents a state in which the sky was clear and the two right barsrepresent a state in which there were scattered clouds in the sky. In anembodiment, all displayed bars related to a certain tag are filled withthe same color of the selected tag. In another embodiment, the time instate chart is displayed in tag detail area 310 when a tag is selectedfrom a non-analog tags grid. When a tag is either unselected or deletedfrom a non-analog tags grid or from a grid view, it will be removed fromthe time in state chart also. When all tags are removed from the chart,then the chart is hidden (i.e., not displayed). In an embodiment, thetime in state chart includes two axes and a legend. An x-axis isillustrated at a bottom portion of the chart and y-axis is illustratedat a left portion of the chart. Labels in the x-axis represent tagstates and labels in the y-axis represent the time spent by all states.In an embodiment, labels in the x-axis show a full name of the state ifthe name is less than twenty characters. In an embodiment in which thename of a state is greater than twenty characters, the first twentycharacters are displayed in addition to an ellipsis. In anotherembodiment, a tooltip containing the full name of the state is displayedwhen a user moves a pointing cursor on an x-axis label. In yet anotherembodiment, the y-axis has another label apart from the time label thatshows seconds, minutes, hours, and days based on the data. Each bar ofthe time in state chart represents a state and includes a colorcorresponding to that of the selected tag in a non-analog tags grid.When a user moves a pointing cursor over a bar, a tooltip is displayedthat includes information of how long the tag was in that state. In anembodiment, each bar maintains a minimum width of ten pixels. If thewidth of a bar is less than ten pixels after adding additional tags, thetime in state chart will consolidate some of the states (e.g., lessprioritized states, states with lesser values) into a new stateidentified as “other states” until the width of the bars are ten pixels.In an embodiment that includes an “other states” group, the label ofthis group displays the number of states that are consolidated into thisgroup.

In an embodiment, a legend is displayed at a substantially top portionof tag detail area 310 in connection with a time in state chart. Forexample, the legend includes an entry for each tag with an icon and alabel that consists of the fully qualified name (FQN) of the tag. Whenan icon is selected in the legend, the corresponding tag is removed fromthe time in state chart and the same tag is unselected from thenon-analog tags grid. The label in the legend will display an ellipsiswhen the tag name is greater than the width of the legend. When the timein state chart is waiting for data (e.g., from server 202) for a tag,“loading . . . ” is displayed near the tag name in the legend and thenremoved once the data is received by user device 106. In anotherembodiment, the data of the time in state chart is refreshed when thetime duration is changed or when a refresh button is selected. In yetanother embodiment, the time in state chart dynamically resizes when atag is added and/or deleted from the non-analog tags grid, when thewindow is resized, or when the view is changed from grid format to chartformat. In another embodiment, the time in state chart has a minimum andmaximum height of five hundred pixels.

In accordance with aspects of the invention, the time in state chartincludes four aggregate options, including split time-total, containedtime-minimum, contained time-maximum, contained time-average, andcontained time-summary. In an embodiment, the aggregate options aredisplayed in a drop-down menu. The split time option uses split data ofthe tag to display the time in state chart. Split data contains an arrayof data in which each data represents a state of a tag. Each displayedbar with the split time option represents a total time of a state duringa retrieval cycle that is specified by selecting a “time selection”option, including state occurrences that fall partially within theperiod. The contained time option uses contained data of the tag todisplay the time in state chart. Contained data contains an array ofdata in which each piece of data represents a state of a tag. Eachdisplayed bar with the contained time-minimum option represents aminimum time of a state during a retrieval cycle that is specified byselecting the “time selection” option, excluding state occurrences thatfall only partially within the period. Each displayed bar with thecontained time-maximum option represents a maximum time of a stateduring a retrieval cycle that is specified by selecting the “timeselection” option, excluding state occurrences that fall only partiallywithin the period. Each displayed bar with the contained time-averageoption represents an average time of a state during a retrieval cyclethat is specified by selecting the “time selection” option, excludingstate occurrences that fall only partially within the period. Thecontained time-summary option represents contained time (i.e., minimum,average, and maximum) of a state during a retrieval cycle that isspecified by selecting the “time selection” option, excluding stateoccurrences that fall only partially within the period.

In an embodiment, when a line chart format is used, tag detail area 310displays different line charts corresponding to various states of adiscrete tag upon selection of a discrete tag. In an embodiment in whichthe number of states is more than four, tag detail area 310 displaysline charts for the first four states of the selected discrete tag. Inan embodiment in which the number of states is less than four, tagdetail area 310 displays line charts for available states of theselected discrete tag.

FIG. 6E illustrates an exemplary embodiment of tag detail area 310 witha grid configured to display data of tags selected in tag summary area308. In an embodiment, the grid is a detail grid that displays last,total, minimum, maximum, and average aggregate values for analog tagsselected in tag summary area 308. In another embodiment, the grid is asummary grid that displays more specific last, total, minimum, maximum,and average aggregate values for both analog and non-analog tagsselected in tag summary area 308. A combo box is displayed in tag detailarea 310 to allow a user of GUI 302 to select the specific aggregatevalue. In another embodiment, the grid is a diagnostic grid thatdisplays a tag source name, a tag name, a tag type, a numeric qualityidentification of the tag (Quality ID), a textual representation of thetag (Quality Status), and a tag description for both analog andnon-analog tags selected in tag summary area 308. The diagnostic gridadditionally displays for analog tags a last value of the tag, a totalvalue of the tag, a minimum value of the tag, a maximum value of thetag, and an average value of the tag all for a selected time duration.

FIG. 7 is an exemplary flow diagram illustrating a method of providing ahistorian interface system embodying aspects of the invention. At step702, a GUI (e.g., GUI 302) displays a guided search experience, asfurther described herein. The historian interface system receives aselection of one or more tags from the guided search experience at step704. In response to the tag selections, the GUI displays summaryinformation about the selected tags at step 706. In an embodiment, step706 is accomplished via tag summary area 308, as further describedherein. At step 708, the historian interface system receives a selectionof the displayed summarized tags. These selected tags are contextualizedbased on metadata values describing the selected tags. For example, acommon characteristic, such as an analog data type, is used tocontextualize the selected tags. The details of the contextualized tagsare displayed at step 712. In an embodiment, the contextualized tags aredisplayed in tag detail area 310 via a chart based on thecontextualization.

FIG. 8 is an exemplary flow diagram illustrating a method of providingmetadata values of a tag embodying aspects of the invention. At step802, a historian interface system (e.g., user device 106) receives asearch query via a GUI (e.g., GUI 302) on a display device (e.g.,display device 206). The interface system searches a historian system(e.g., server 202) coupled via a communication network (e.g.,communication network 204) for tags that are defined by metadataattributes at step 804. At step 806, the historian interface systemreceives tags from the historian system that, at least in part, matchthe search query. At step 808, the interface system displays a firstpanel via the GUI. The first panel includes groups of metadataattributes. The groups include subgroups that further include one ormore of the received tags that each has a value for a certain metadataattribute that at least in part matches the search query. At step 810,the historian interface system receives a selection of one of thesubgroups of the first panel. In response, the interface system displaysa second panel via the GUI that includes the tags of the selectedsubgroup at step 812. At step 814, the historian interface systemreceives a selection of one of the tags displayed in the second panel.At step 816, the historian interface system displays the value of themetadata attributes of the tag selected from the second panel.

Embodiments of the present invention may comprise a special purposecomputer including a variety of computer hardware, as described ingreater detail below.

Embodiments within the scope of the present invention also includecomputer-readable media for carrying or having computer-executableinstructions or data structures stored thereon. Such computer-readablemedia can be any available media that can be accessed by a specialpurpose computer. By way of example, and not limitation, suchcomputer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or otheroptical disk storage, magnetic disk storage, or other magnetic storagedevices, or any other medium that can be used to carry or store desiredprogram code means in the form of computer-executable instructions ordata structures and that can be accessed by a general purpose or specialpurpose computer. When information is transferred or provided over anetwork or another communications connection (either hardwired,wireless, or a combination of hardwired or wireless) to a computer, thecomputer properly views the connection as a computer-readable medium.Thus, any such connection is properly termed a computer-readable medium.Combinations of the above should also be included within the scope ofcomputer-readable media. Computer-executable instructions comprise, forexample, instructions and data which cause a general purpose computer,special purpose computer, or special purpose processing device toperform a certain function or group of functions.

The following discussion is intended to provide a brief, generaldescription of a suitable computing environment in which aspects of theinvention may be implemented. Although not required, aspects of theinvention will be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by computers in network environments. Generally, programmodules include routines, programs, objects, components, datastructures, etc. that perform particular tasks or implement particularabstract data types. Computer-executable instructions, associated datastructures, and program modules represent examples of the program codemeans for executing steps of the methods disclosed herein. Theparticular sequence of such executable instructions or associated datastructures represent examples of corresponding acts for implementing thefunctions described in such steps.

Those skilled in the art will appreciate that aspects of the inventionmay be practiced in network computing environments with many types ofcomputer system configurations, including personal computers, hand-helddevices, multi-processor systems, microprocessor-based or programmableconsumer electronics, network PCs, minicomputers, mainframe computers,and the like. Aspects of the invention may also be practiced indistributed computing environments where tasks are performed by localand remote processing devices that are linked (either by hardwiredlinks, wireless links, or by a combination of hardwired or wirelesslinks) through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

An exemplary system for implementing aspects of the invention includes aspecial purpose computing device in the form of a conventional computer,including a processing unit, a system memory, and a system bus thatcouples various system components including the system memory to theprocessing unit. The system bus may be any of several types of busstructures including a memory bus or memory controller, a peripheralbus, and a local bus using any of a variety of bus architectures. Thesystem memory includes read only memory (ROM) and random access memory(RAM). A basic input/output system (BIOS), containing the basic routinesthat help transfer information between elements within the computer,such as during start-up, may be stored in ROM. Further, the computer mayinclude any device (e.g., computer, laptop, tablet, PDA, cell phone,mobile phone, a smart television, and the like) that is capable ofreceiving or transmitting an IP address wirelessly to or from theinternet.

The computer may also include a magnetic hard disk drive for readingfrom and writing to a magnetic hard disk, a magnetic disk drive forreading from or writing to a removable magnetic disk, and an opticaldisk drive for reading from or writing to removable optical disk such asa CD-ROM or other optical media. The magnetic hard disk drive, magneticdisk drive, and optical disk drive are connected to the system bus by ahard disk drive interface, a magnetic disk drive-interface, and anoptical drive interface, respectively. The drives and their associatedcomputer-readable media provide nonvolatile storage ofcomputer-executable instructions, data structures, program modules, andother data for the computer. Although the exemplary environmentdescribed herein employs a magnetic hard disk, a removable magneticdisk, and a removable optical disk, other types of computer readablemedia for storing data can be used, including magnetic cassettes, flashmemory cards, digital video disks, Bernoulli cartridges, RAMs, ROMs,solid state drives (SSDs), and the like.

The computer typically includes a variety of computer readable media.Computer readable media can be any available media that can be accessedby the computer and includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media include both volatileand nonvolatile, removable and non-removable media implemented in anymethod or technology for storage of information such as computerreadable instructions, data structures, program modules or other data.Computer storage media are non-transitory and include, but are notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical disk storage,SSDs, magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to storethe desired non-transitory information, which can accessed by thecomputer. Alternatively, communication media typically embody computerreadable instructions, data structures, program modules or other data ina modulated data signal such as a carrier wave or other transportmechanism and includes any information delivery media.

Program code means comprising one or more program modules may be storedon the hard disk, magnetic disk, optical disk, ROM, and/or RAM,including an operating system, one or more application programs, otherprogram modules, and program data. A user may enter commands andinformation into the computer through a keyboard, pointing device, orother input device, such as a microphone, joy stick, game pad, satellitedish, scanner, or the like. These and other input devices are oftenconnected to the processing unit through a serial port interface coupledto the system bus. Alternatively, the input devices may be connected byother interfaces, such as a parallel port, a game port, or a universalserial bus (USB). A monitor or another display device is also connectedto the system bus via an interface, such as video adapter 48. Inaddition to the monitor, personal computers typically include otherperipheral output devices (not shown), such as speakers and printers.

One or more aspects of the invention may be embodied incomputer-executable instructions (i.e., software), routines, orfunctions stored in system memory or non-volatile memory as applicationprograms, program modules, and/or program data. The software mayalternatively be stored remotely, such as on a remote computer withremote application programs. Generally, program modules includeroutines, programs, objects, components, data structures, etc. thatperform particular tasks or implement particular abstract data typeswhen executed by a processor in a computer or other device. The computerexecutable instructions may be stored on one or more tangible,non-transitory computer readable media (e.g., hard disk, optical disk,removable storage media, solid state memory, RAM, etc.) and executed byone or more processors or other devices. As will be appreciated by oneof skill in the art, the functionality of the program modules may becombined or distributed as desired in various embodiments. In addition,the functionality may be embodied in whole or in part in firmware orhardware equivalents such as integrated circuits, application specificintegrated circuits, field programmable gate arrays (FPGA), and thelike.

The computer may operate in a networked environment using logicalconnections to one or more remote computers. The remote computers mayeach be another personal computer, a tablet, a PDA, a server, a router,a network PC, a peer device, or other common network node, and typicallyinclude many or all of the elements described above relative to thecomputer. The logical connections include a local area network (LAN) anda wide area network (WAN) that are presented here by way of example andnot limitation. Such networking environments are commonplace inoffice-wide or enterprise-wide computer networks, intranets and theInternet.

When used in a LAN networking environment, the computer is connected tothe local network through a network interface or adapter. When used in aWAN networking environment, the computer may include a modem, a wirelesslink, or other means for establishing communications over the wide areanetwork, such as the Internet. The modem, which may be internal orexternal, is connected to the system bus via the serial port interface.In a networked environment, program modules depicted relative to thecomputer, or portions thereof, may be stored in the remote memorystorage device. It will be appreciated that the network connectionsshown are exemplary and other means of establishing communications overwide area network may be used.

Preferably, computer-executable instructions are stored in a memory,such as the hard disk drive, and executed by the computer.Advantageously, the computer processor has the capability to perform alloperations (e.g., execute computer-executable instructions) inreal-time.

The order of execution or performance of the operations in embodimentsof the invention illustrated and described herein is not essential,unless otherwise specified. That is, the operations may be performed inany order, unless otherwise specified, and embodiments of the inventionmay include additional or fewer operations than those disclosed herein.For example, it is contemplated that executing or performing aparticular operation before, contemporaneously with, or after anotheroperation is within the scope of aspects of the invention.

Embodiments of the invention may be implemented with computer-executableinstructions. The computer-executable instructions may be organized intoone or more computer-executable components or modules. Aspects of theinvention may be implemented with any number and organization of suchcomponents or modules. For example, aspects of the invention are notlimited to the specific computer-executable instructions or the specificcomponents or modules illustrated in the figures and described herein.Other embodiments of the invention may include differentcomputer-executable instructions or components having more or lessfunctionality than illustrated and described herein.

When introducing elements of aspects of the invention or the embodimentsthereof, the articles “a”, “an”, “the” and “said” are intended to meanthat there are one or more of the elements. The terms “comprising”,“including”, and “having” are intended to be inclusive and mean thatthere may be additional elements other than the listed elements.

Having described aspects of the invention in detail, it will be apparentthat modifications and variations are possible without departing fromthe scope of aspects of the invention as defined in the appended claims.As various changes could be made in the above constructions, products,and methods without departing from the scope of aspects of theinvention, it is intended that all matter contained in the abovedescription and shown in the accompanying drawings shall be interpretedas illustrative and not in a limiting sense.

What is claimed is:
 1. A system, comprising: a local historian systemcoupled to a remote display device over a communication network, whereinthe local historian system is configured to receive a selection of atleast one tag of a plurality of tags from the remote display device overthe communication network, and wherein the local historian systemincludes: a computer-readable storage medium storing the plurality oftags, wherein each tag represents an attribute of a continuous process,and wherein one or more metadata values stored on the computer-readablestorage medium describe each tag; and a processor configured to executeprocessor-executable instructions stored on the computer-readablestorage medium, said processor-executable instructions includinginstructions to contextualize the selected tag based on the metadatavalues describing the selected tag; and wherein the local historiansystem is further configured to transmit the contextualized tag to theremote display device over the communication network.
 2. The system ofclaim 1, wherein said processor-executable instructions further includeinstructions to contextualize the selected tag based on the number ofselected tags.
 3. The system of claim 1, wherein said remote displaydevice is configured to display a graphical representation of a value ofthe attribute based on a property of the remote display device.
 4. Thesystem of claim 3, wherein said property is a form factor of the remotedisplay device.
 5. The system of claim 3, wherein said property is anarea of a graphical user interface of the remote display device.
 6. Thesystem of claim 1, wherein said local historian system is furtherconfigured to provide tags to the remote display device via a guidedsearch experience.
 7. The system of claim 1, wherein saidprocessor-executable instructions further include instructions tocontextualize the selected tag based on a time duration selectionreceived from the remote display device.
 8. The system of claim 1,wherein the remote display device is configured to display thecontextualized tags as at least one of a bar chart, a line chart, ascatter plot, and a time in state chart.
 9. A method of providing ahistorian interface system, comprising: displaying, via a graphical userinterface (GUI) of a remote display device, a graphical representationof a plurality of tags, wherein each tag represents an attribute of acontinuous process, wherein each tag is stored in a memory of a localhistorian system coupled, via a communication network, to the remotedisplay device, and wherein one or more metadata values stored in thememory of the local historian system describe each tag; receiving, viathe GUI of the remote display device, a selection of the displayedgraphical representation of at least one tag of the plurality of tags;contextualizing, by a processor of the local historian system, theselected tag based on the metadata values describing the selected tag;and displaying, via the GUI of the remote display device, a graphicalrepresentation of a value of the attribute of the selected tag based onsaid contextualizing.
 10. The method of claim 9, wherein saidcontextualizing is further based on the number of selected tags.
 11. Themethod of claim 10, wherein said displaying the graphical representationof the value of the attribute is based on a property of the remotedisplay device.
 12. The method of claim 11, wherein said property is aform factor of the remote display device.
 13. The method of claim 11,wherein said property is an area of the GUI of the remote displaydevice.
 14. The method of claim 9, further comprising selecting, via theGUI of the remote display device, a graphical representation of one ofthe plurality of tags through a guided search experience.
 15. The methodof claim 9, wherein said contextualizing is further based on a timeduration selected via the GUI of the remote display device.
 16. Themethod of claim 9, further comprising: automatically relocating thegraphical representation of the value of the attribute of the selectedtag in response to a selection of another tag of the plurality of tags;and displaying the automatically relocated graphical representation. 17.The method of claim 9, wherein the graphical representation of the valueof the attribute of the selected tag is at least one of a bar chart, aline chart, a scatter plot, and a time in state chart.
 18. A method ofproviding metadata values of a tag stored in a historian system,comprising: receiving a search query via a graphical user interface(GUI) on a display device; searching a historian system for one or moretags stored thereon, wherein each tag is defined by a plurality ofmetadata attributes, wherein the historian system and the display deviceare connected by a communication network; receiving a plurality of thetags stored on the historian system via the communication network,wherein each received tag has a value for at least one of the pluralityof metadata attributes that at least in part matches the search query;displaying a first panel via the GUI, said first panel including agraphical representation of each of a plurality of groups, wherein eachgroup corresponds to one of the plurality of metadata attributes,wherein each group of the plurality of groups includes a plurality ofsubgroups, wherein each subgroup includes a plurality of received tagseach having a value for a common metadata attribute that at least inpart matches the search query; displaying via the GUI a graphicalrepresentation of each subgroup on the first panel; receiving via theGUI a selection of the graphical representation of one of the subgroupsdisplayed on the first panel; displaying a second panel via the GUI,said second panel including a graphical representation of each of theplurality of received tags comprising the selected subgroup; receivingvia the GUI a selection of the graphical representation of one of theplurality of tags displayed on the second panel; and displaying a thirdpanel via the GUI, said third panel including a graphical representationof the value of each of the plurality of metadata attributes of theselected tag.
 19. The method of claim 18, further comprising:dynamically determining an optimal visualization scheme for the selectedtag based on the plurality of metadata attributes of the selected tag;and displaying, via the GUI, a graphical representation of a value ofthe selected tag based on the optimal visualization scheme.
 20. Themethod of claim 19, further comprising: monitoring a boundary of the GUIto detect a falloff condition in which the graphical representation ofthe value of the selected tag extends beyond the boundary; grouping thegraphical representation of the value of the selected tag with agraphical representation of a value of at least one other selected tagin the falloff condition; and displaying, via the GUI, a graphicalrepresentation of the group.